home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)td.d64 / grafixeditor.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  8KB  |  270 lines

  1. 1 IFQX=1THEN100
  2. 9 REM"[141][147]
  3. 10 [143]"GOSUB            CHR$(null)ATNASCRIGHT$(null)CLOSEVALSTR$RIGHT$(null)(null)(null) 2.0
  4. 12 REM"[141]             [194]Y:[199]EORGE [200]AMIN
  5. 14 [143]"GOSUB        (null)(null)(null) TO BE (null)(null)(null)STR$WAIT FOR PROFIT !!
  6. 16 REM"[141]   (UNLESS [201] GET A PIECE OF THE PIE)
  7. 18 [143]"GOSUB
  8. 50 GOTO60000
  9. 100 REM
  10. 105 UP=49408:DN=49475:LT=49703:RT=49777:RV=49855:CC=49919:POKE53272,29
  11. 110 FI=49955:BD=50019:SR=50122
  12. 115 HR=3*4096:REM $3000
  13. 120 PRINT"[147]":CRT=1024:X=0:Y=0:POKE53280,0:POKE53281,0:SYSCC,0,0,40,25,1
  14. 125 FORT=0TO239:POKECRT+T,T:NEXT
  15. 130 SYSFI,0,6,40,1,254,1
  16. 135 SYSFI,16,11,8,8,254,1
  17. 140 PRINT"":FORT=0TO7:PRINT"DATA":NEXT
  18. 145 POKECR+30+15*40,0
  19. 150 PS=CR+X+Y*40:PP=PEEK(PS)
  20. 155 WW=PP:POKEPS,WW
  21. 160 GETA$:IFA$=""THENWW=255:POKEPS,WW:GOTO155
  22. 165 IFA$=""THENX=X+1:GOTO250
  23. 170 IFA$="[157]"THENX=X-1:GOTO250
  24. 175 IFA$=""THENY=Y+1:GOTO260
  25. 180 IFA$="[145]"THENY=Y-1:GOTO260
  26. 185 IFA$="[133]"THENCO=PEEK(55296)AND15:CO=CO+1:GOSUB1300:SYSCC,0,0,40,25,CO
  27. 190 IFA$="[134]"THENCO=PEEK(53280)AND15:CO=CO+1:GOSUB1300:POKE53280,CO
  28. 195 IFA$="[135]"THENCO=PEEK(53281)AND15:CO=CO+1:GOSUB1300:POKE53281,CO
  29. 200 IFA$="[138]"THENCO=PEEK(53282)AND15:CO=CO+1:GOSUB1300:POKE53282,CO
  30. 205 IFA$="[139]"THENCO=PEEK(53283)AND15:CO=CO+1:GOSUB1300:POKE53283,CO
  31. 210 IFA$="[137]"THENPOKE53270,216
  32. 215 IFA$="[140]"THENPOKE53270,200
  33. 220 IFA$="^"THENPOKECR+30+15*40,PP:GOTO275
  34. 225 IFA$="C"THEN1100
  35. 230 IFA$="S"THEN1200
  36. 235 IFA$="L"THEN1400
  37. 240 IFA$="N"THENRUN
  38. 241 IFA$="[136]"THENPOKE53272,21
  39. 242 IFA$="H"THENPOKE53272,29
  40. 243 IFA$="_"THENGOTO700
  41. 245 GOTO155
  42. 250 IFX>39THENX=0:Y=Y+1
  43. 255 IFX<0THENX=39:Y=Y-1
  44. 260 IFY<0THENY=0
  45. 265 IFY>5THENY=5
  46. 270 POKECR+30+15*40,PEEK(CR+X+Y*40):POKEPS,PP:GOTO150
  47. 275 GC=CR+23+11*40:X1=0:Y1=0
  48. 280 PRINT""
  49. 285 FOREC=0TO7
  50. 290 DT=PEEK(12288+Y*40*8+(X*8+EC))
  51. 295 PRINTTAB(6)"     [157][157][157][157][157]"DT
  52. 300 FORDZ=7TO0STEP-1
  53. 305 POKEGC+EC*40-DZ,254
  54. 310 IFDT>=2^DZTHENPOKEGC+EC*40-DZ,255:DT=DT-2^DZ
  55. 315 NEXT:NEXT
  56. 320 PS=GC-7+X1+Y1*40:PP=PEEK(PS)
  57. 325 WW=0:POKEPS,254+WW
  58. 330 GETA$:IFA$=""THENWW=1-WW:POKEPS,254+WW:GOTO330
  59. 335 IFA$=""THENX1=X1+1:GOTO440
  60. 340 IFA$="[157]"THENX1=X1-1:GOTO440
  61. 345 IFA$=""THENY1=Y1+1:GOTO450
  62. 350 IFA$="[145]"THENY1=Y1-1:GOTO450
  63. 355 IFA$="[133]"THENCO=PEEK(55296)AND15:CO=CO+1:GOSUB1300:SYSCC,0,0,40,25,CO
  64. 360 IFA$="[134]"THENCO=PEEK(53280)AND15:CO=CO+1:GOSUB1300:POKE53280,CO
  65. 365 IFA$="[135]"THENCO=PEEK(53281)AND15:CO=CO+1:GOSUB1300:POKE53281,CO
  66. 370 IFA$="[138]"THENCO=PEEK(53282)AND15:CO=CO+1:GOSUB1300:POKE53282,CO
  67. 375 IFA$="[139]"THENCO=PEEK(53283)AND15:CO=CO+1:GOSUB1300:POKE53283,CO
  68. 380 IFA$="[137]"THENPOKE53270,216
  69. 385 IFA$="[140]"THENPOKE53270,200
  70. 390 IFA$="."THEN465
  71. 395 IFA$=" "THEN480
  72. 400 IFA$="F"THEN495
  73. 405 IFA$="[147]"THEN510
  74. 410 IFA$="I"THEN525
  75. 415 IFA$="^"THENPOKEPS,PP:PS=CR+X+Y*40:PP=PEEK(PS):GOTO155
  76. 420 IFA$="="THENGOSUB1320
  77. 425 IFA$="N"THEN540
  78. 430 IFA$="+"THEN560
  79. 435 IFA$="-"THEN575
  80. 436 IFA$="[136]"THENPOKE53272,21
  81. 437 IFA$="H"THENPOKE53272,29
  82. 438 IFA$="D"THEN600
  83. 439 IFA$="_"THEN800
  84. 440 IFX1>7THENX1=0:Y1=Y1+1
  85. 445 IFX1<0THENX1=7:Y1=Y1-1
  86. 450 IFY1<0THENY1=0
  87. 455 IFY1>7THENY1=7
  88. 460 POKEPS,PP:GOTO320
  89. 465 PP=255
  90. 470 POKEPS,255
  91. 475 DC=12288+Y*40*8+X*8+Y1:POKEDC,PEEK(DC)OR2^(7-X1):GOTO325
  92. 480 PP=254
  93. 485 POKEPS,254
  94. 490 DC=12288+Y*40*8+X*8+Y1:POKEDC,PEEK(DC)AND255-2^(7-X1):GOTO325
  95. 495 FOREC=0TO7
  96. 500 DT=12288+Y*40*8+(X*8+EC)
  97. 505 POKEDT,255:NEXT:GOTO275
  98. 510 FOREC=0TO7
  99. 515 DT=12288+Y*40*8+(X*8+EC)
  100. 520 POKEDT,0:NEXT:GOTO275
  101. 525 FOREC=0TO7
  102. 530 DT=12288+Y*40*8+(X*8+EC)
  103. 535 POKEDT,255-PEEK(DT):NEXT:GOTO275
  104. 540 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251:FOREC=0TO7
  105. 545 DT=12288+Y*40*8+(X*8+EC)
  106. 550 DP=Y*40*8+(X*8+EC)
  107. 555 POKEDT,PEEK(53248+DP):NEXT:POKE1,PEEK(1)OR4:POKE56334,PEEK(56334)OR1:GOTO275
  108. 560 FOREC=0TO7
  109. 565 DT=12288+Y*40*8+(X*8+EC)
  110. 570 POKEDT,PEEK(DT+1):NEXT:POKEDT,0:GOTO275
  111. 575 FOREC=7TO0STEP-1
  112. 580 DT=12288+Y*40*8+(X*8+EC)
  113. 585 POKEDT,PEEK(DT-1):NEXT:POKEDT,0:GOTO275
  114. 600 PRINT"[147]":POKE53272,21
  115. 602 FOREC=0TO7
  116. 604 DT=12288+Y*40*8+(X*8+EC)
  117. 606 PRINT"DATA ";:GOSUB1000
  118. 608 DA=VAL(IN$):IFDA<0ORDA>255THENPRINT:PRINT"[145]                     [145][145]":GOTO606
  119. 610 POKEDT,DA:PRINT:NEXT:GOTO100
  120. 700 REM  COMMANDS FOR CHARACHTER CHOOSER
  121. 702 PRINT"[147]":POKE53272,21:
  122. 704 PRINT"---------------------------------------"
  123. 706 PRINTTAB(5)"COMMANDS FOR CHARCHTER PICKER"
  124. 708 PRINT"---------------------------------------"
  125. 710 PRINT"CRSR CONTROLS     = SELF EXPLANATORY"
  126. 712 PRINT"F1[146]                = CHARACHTER COLOUR"
  127. 714 PRINT"F3[146]                = BORDER COLOUR"
  128. 716 PRINT"F5[146]                = SCREEN COLOUR"
  129. 718 PRINT"F7[146]                = LO-RESOLOUTION"
  130. 720 PRINT"F2[146]                = MULTI-COLOUR"
  131. 722 PRINT"F4[146]                = MULTI # 2"
  132. 724 PRINT"F6[146]                = MULTI # 3"
  133. 726 PRINT"F8[146]                = NORMAL COLOUR"
  134. 727 PRINT" H                = HI-RESOLOUTION"
  135. 728 PRINT" ^                = GOTO PIXEL CHOOSER"
  136. 729 PRINT" N                = RE RUN PROGRAM"
  137. 730 PRINT" C                = CATALOG GRAFIX FILES"
  138. 732 PRINT"[145] L                = LOAD GRAFIX FILES"
  139. 734 PRINT" S                = SAVE CHARACHTERS"
  140. 736 PRINT"CAN BE USED IN A PROGRAM BY LOADING ,8,1"
  141. 740 PRINT"    PRESS F1[146] "
  142. 742 GETA$:IFA$<>"[133]"THEN742
  143. 743 GOTO100
  144. 799 END
  145. 800 REM  COMMANDS FOR CHARACHTER CHOOSER
  146. 802 PRINT"[147]":POKE53272,21:
  147. 804 PRINT"---------------------------------------"
  148. 806 PRINTTAB(5)"COMMANDS FOR CHARCHTER PICKER"
  149. 808 PRINT"---------------------------------------"
  150. 812 PRINT"F1[146]                = CHARACHTER COLOUR"
  151. 814 PRINT"F3[146]                = BORDER COLOUR"
  152. 816 PRINT"F5[146]                = SCREEN COLOUR"
  153. 818 PRINT"F7[146]                = LO-RESOLOUTION"
  154. 820 PRINT"F2[146]                = MULTI-COLOUR"
  155. 822 PRINT"F4[146]                = MULTI # 2"
  156. 824 PRINT"F6[146]                = MULTI # 3"
  157. 826 PRINT"F8[146]                = NORMAL COLOUR"
  158. 827 PRINT" H                = HI-RESOLOUTION"
  159. 828 PRINT" ^                = GOTO TO CHAR PICKER"
  160. 829 PRINT" N                = RETURN CHAR TO NORM."
  161. 830 PRINT"[145] .                = PLACE PIXEL"
  162. 832 PRINT"SPACE[146]             = ERASE PIXEL"
  163. 834 PRINT" =                = GET DATA FOR CHAR"
  164. 836 PRINT" D                = CREATE DAT FOR CHAR"
  165. 838 PRINT" I                = INVERT CHARACHTER"
  166. 840 PRINT" F                = FILL IN CHARACHTER"
  167. 842 PRINT"CLR[146]               = CLEAR CHARACHTER"
  168. 844 PRINT" +                = MOVE CHAR UP 1 PIXEL"
  169. 846 PRINT"[145] -                = MOVE CHAR DN 1 PIXEL"
  170. 847 PRINT"[145]      PRESS F1[146]"
  171. 848 GETA$:IFA$<>"[133]"THEN848
  172. 849 GOTO100
  173. 1000 REM
  174. 1005 IN$=" ":ZT=TI:ZC=2:ZD$=CHR$(20)
  175. 1006 GETZ$:IFZ$<>""THEN1009
  176. 1007 IFZT<=TITHENPRINTMID$("**",ZC,1);"[157]";:ZC=3-ZC:T=TI+15
  177. 1008 GOTO1006
  178. 1009 Z=ASC(Z$):ZL=LEN(IN$):IF(ZAND127)<32THENPRINT" [157]";:GOTO1013
  179. 1010 IFFLAND(ZAND127)>64AND(ZAND127)<91THENZ$=CHR$((Z+128)AND255)
  180. 1011 IFZL>16THEN1006
  181. 1012 IN$=IN$+Z$:PRINTZ$;ZD$;Z$;
  182. 1013 IFZ=13THENIN$=MID$(IN$,2):PRINTCR$;:RETURN
  183. 1014 IFZ=20ANDZL>1THENIN$=LEFT$(IN$,ZL-1):PRINT"[157]";:GOTO1006
  184. 1015 IFZ=141THENZ$=CHR$(-20*(ZL>1)):FORZ=2TOZL:PRINTZ$;:NEXTZ:GOTO1005
  185. 1016 GOTO1006
  186. 1100 PRINT"[147]"
  187. 1105 REM DIRECTORY
  188. 1110 PRINT"";
  189. 1115 OPEN1,8,0,"$:GX*"
  190. 1120 REM
  191. 1125 GET#1,B$:IFST<>0THEN1170
  192. 1130 IFB$<>CHR$(34)THEN1125
  193. 1135 P$=""
  194. 1140 GET#1,B$:IFB$<>CHR$(34)THENP$=P$+B$:GOTO1140
  195. 1145 GET#1,B$:IFB$=CHR$(32)THEN1145
  196. 1150 PRINT""Q$P$Q$
  197. 1160 GET#1,B$:IFB$<>""THEN1160
  198. 1165 IFST=0THENX=X+1:GOTO1120
  199. 1170 CLOSE1
  200. 1180 PRINT"PRESS F1[146] TO CONTINUE"
  201. 1185 GETA$:IFA$<>"[133]"THEN1185
  202. 1190 GOTO100
  203. 1200 POKE53280,4:POKE53281,0
  204. 1205 PRINT"[147]*** SAVE MODE ***"
  205. 1210 PRINT"[175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175] [175] [175] ";
  206. 1215 PRINT" [183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183]"
  207. 1220 PRINT"[145][145][145]"
  208. 1225 F$=""
  209. 1230 PRINT"FILENAME: ";:GOSUB1000:F$=IN$
  210. 1235 IFF$=""THEN100
  211. 1240 F$="GX"+F$:S=12288:E=14336
  212. 1245 DV=8:F$="@0:"+F$
  213. 1250 T$=F$:ZK=PEEK(53)+256*PEEK(54)-LEN(T$):POKE782,ZK/256
  214. 1255 POKE781,ZK-PEEK(782)*256:POKE780,LEN(T$):SYS65469
  215. 1260 POKE780,1:POKE781,DV:POKE782,1:SYS65466
  216. 1265 POKE254,S/256:POKE253,S-PEEK(254)*256:POKE780,253
  217. 1270 POKE782,E/256:POKE781,E-PEEK(782)*256:SYS65496
  218. 1275 IF(PEEK(783)AND1)OR(ST AND 191)THEN1285
  219. 1280 PRINT"DONE.":GOTO100
  220. 1285 PRINT"[197]EROR ON SAVE.  TRY AGAIN."
  221. 1290 OPEN15,8,15:INPUT#15,E1$,E2$:PRINTE1$;E2$:CLOSE15:GOTO1230
  222. 1300 IFCO>15THENCO=0
  223. 1310 RETURN
  224. 1320 PRINT""
  225. 1321 FOREC=0TO7
  226. 1322 DT=PEEK(12288+Y*40*8+(X*8+EC))
  227. 1323 PRINTTAB(6)"     [157][157][157][157][157]"DT
  228. 1325 NEXT:RETURN
  229. 1340 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251:FOREC=1TO7
  230. 1400 POKE53280,4:POKE53281,0
  231. 1405 PRINT"[147][159]*** LOAD MODE ***"
  232. 1410 PRINT"[175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175][160][175] [175] [175] ";
  233. 1415 PRINT" [183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183][160][183]"
  234. 1420 PRINT"[145][145][145]"
  235. 1425 F$=""
  236. 1430 PRINT"FILENAME: ";:GOSUB1000:F$=IN$
  237. 1435 IFF$=""THEN100
  238. 1440 F$="GX"+F$+"*"
  239. 1450 QX=1:LOADF$,8,1
  240. 60000 PRINT"[147]":POKE53281,0:POKE53280,6:PRINTCHR$(8):POKE53272,21
  241. 60005 IF PEEK(49500)<>202ORPEEK(50000)<>165THENLOAD"COMMANDS",8,1
  242. 60010 UP=49408:DN=49475:LT=49703:RT=49777:RV=49855:CC=49919
  243. 60015 FI=49955:BD=50019:SR=50122
  244. 60020 PRINTTAB(2)"[206][205][167][205] [206][205][167][183][183][167] [205] [206] [167][205][206][165][206][205][167][206][167][183][167][205]  [206][205]  [206][205]"
  245. 60025 PRINTTAB(2)"[165][175][167][206] [204][186][167][183] [167]  [214] [192][167]  [165][204][186][167][180][167][192][167][206]  [175][186]  [180][167]"
  246. 60030 PRINTTAB(2)"[205][206][167][205] [165][167][167]  [167] [206] [205] [167]  [165][165][167][167][205][167][175][167][205]  [204][175][172] [205][206]"
  247. 60035 PRINTTAB(10)"    84/06/02"
  248. 60040 PRINTTAB(10)"[159]BY:GEORGE HAMIN"
  249. 60045 PRINTTAB(08)"[156]TO:EDU-KAT SOFTWARE"
  250. 60050 SYSBD,0,0,40,25,160,14
  251. 60055 SYSBD,1,1,38,23,160,3
  252. 60060 PRINT"      2 SECONDS .....":RESTORE
  253. 60065 FORJ=0TO39:READA:N=N+A
  254. 60070 POKE832+J,A:NEXT
  255. 60075 IFN<>4782THENPRINT"DATA ERROR":STOP
  256. 60080 SYS832
  257. 60085 FORT=0TO15:READA:POKE14320+T,A:NEXT
  258. 60090 PRINT"[145]       PRESS F1[146] TO BEGIN"
  259. 60095 GETA$:IFA$<>"[133]"THEN60095
  260. 60100 GOTO100
  261. 60105 DATA 120,169,51,133,1
  262. 60110 DATA 160,224,162,0,189
  263. 60115 DATA 0,208,157,0,48
  264. 60120 DATA 232,208,247,238,75
  265. 60125 DATA 3,238,78,3,204
  266. 60130 DATA 75,3,208,236,169
  267. 60135 DATA 55,133,1,88,169
  268. 60140 DATA 28,141,24,208,96
  269. 60145 DATA 255,129,129,129,129,129,129,255,255,255,255,255,255,255,255,255
  270.